#!/bin/bash  #指定使用的解释器
filename="net_packages_$(date +%F-%H:%M:%S)"  #其中 date +%F == date + %Y-%m-%d
touch $filename #创建名为filename的文件
tcpdump -i eth0 -s 0  'tcp' -w $filename.pcap & tdid=`pgrep tcpdump`
                # -i 指定监听端口，-s    -A 以ASCII码格式打印所有分组 -w直接把分组写入文件 -c 抓取数据包数目, 'tcp'属于过滤器，只要tcp数据包

while [ "1" = "1" ]  #循环获取文件大小
do
file_size=`du $filename|awk '{print $1}'`   #du 用于估计和打印该文件磁盘使用情况，通过 '|'把du的输出结果作为输入送给awk指令 {print $1}获取第一行，也就是文件大小
echo 'file_size'$file_size  #输出file_Size

if [ $file_size -ge 10240 ]  #文件达到10M，重启tcpdump
then
echo 'data is enough, stop tcpdump, create a new file'
killall tcpdump
filenameBak=$filename
filename='net_packages'`date +%F-%H:%M:%S`
touch $filename
tcpdump -i eth0 -s 0 -A 'tcp' -w $filename & tdid=`pgrep tcpdump` -c 1000
gzip $filenameBak
fi
sleep 5s
done

